iT邦幫忙

2026 iThome 鐵人賽

DAY 5
0
Vibe Coding

別再只叫 AI 做漂亮一點:30 天 Vibe Coding UI 元件驗收實驗系列 第 5

Day 5|輸入文字也有分工:Text Field、Textarea、Password 與 Search

  • 分享至 

  • xImage
  •  

Day 5|輸入文字也有分工:Text Field、Textarea、Password 與 Search

安安~我是ChiYu~

昨天才把邀請 Dialog 的操作區分清楚:送出用 Button,權限說明用 Link。按鈕總算不再互相冒充,我把視線往上一移,新的問題已經排好隊等我了。

昨天結尾留下來的,就是這個版本:帳號、密碼、搜尋和備註,一人分到一個長方形輸入框。AI 的處理方式俐落得很:複製元件、換 Placeholder、收工。

AI 第一版把帳號、密碼、搜尋和備註做成相同的單行輸入框

圖 1:和 Day 4 結尾是同一個 AI 第一版。四個欄位只有 Placeholder 不同,資料規則與輸入後的反應一律欠交。

畫面沒有壞,四份工作卻被壓成同一種。帳號要保存短資料,密碼不能直接露出來,搜尋輸入後得改變清單,備註則要容得下一段完整說明。它們唯一穩定的共同點,大概只剩「都能打字」。

我先打開元件比較頁,把圓角、框線和顏色放到一旁,只看文字輸入後發生什麼。

文字輸入元件比較頁:從內容長度、敏感性與搜尋目的定位欄位

圖 2:四個元件外觀都像輸入框,資料用途與輸入後的反應才是真正差別。

四個輸入框只換 Placeholder,資料規則仍然全靠 AI 猜

我先不背元件名稱,只問一題:使用者打完字後,系統接下來要做什麼?答案寫出來,四個框自然就分家了。

LumenDesk 裡的工作 該用的元件 打完字後要發生什麼 若全用一般 Text Field 會怎樣
填工作區帳號 Text Field 保存短資料,檢查格式與重複值 格式與錯誤訊息沒有清楚落點。
設定初始密碼 Password Field 預設遮蔽,仍能切換顯示來校對 內容直接外露,或根本無法確認是否打錯。
搜尋既有成員 Search Field 根據關鍵字縮小清單,回報結果數量 框裡有文字,底下資料卻完全沒動。
填邀請備註 Textarea 容納多行內容,保留換行與字數狀態 一段話被塞進單行,連回頭閱讀都很痛苦。

這裡沒有哪個元件比較高級。Text Field 不是預設答案,Search Field 也不會因為多一個放大鏡就自動懂得搜尋。先把資料與操作說清楚,再讓元件各自回座位。

我先實測最容易靠外觀混過去的 Password 與 Search

我先在 Password Field 輸入 Aurora2026,再按「顯示密碼」。內容沒有被清空,控制名稱改成「隱藏密碼」,畫面也提醒「密碼目前顯示中,請留意周遭環境」。

接著到 Search Field 輸入「設計」。原本的成員清單縮成一筆「陳怡安|設計組」,結果文字顯示找到 1 位成員,旁邊出現清除控制。

如果只看截圖,這兩個欄位都像是右邊多一顆小按鈕的長方形框。真的操作一次,差異就藏不住了。

我做的事 Password Field Search Field
輸入文字 保存一段秘密值,預設遮蔽 把文字當成查詢條件
操作右側控制 切換顯示/隱藏,原值保留 清除條件,清單回到原本範圍
畫面回饋 說明內容目前是否顯示 回報符合筆數或沒有結果
驗收重點 能安全校對,切換時不用重打 查詢真的改變資料範圍,不只多一個圖示

Password Field 在保護一個值,Search Field 在控制一批資料。框線長得像,責任完全不同。

Text Field 保存短資料,錯誤要留在欄位附近

Text Field|文字輸入框 Demo 裡,我用專案名稱示範短文字輸入。這類元件適合姓名、Email、代碼與短名稱。

Vibe UI Atlas 的 Text Field 實際 Demo:專案名稱、必填標記、規則與目前輸入

圖 3:Text Field 收一段短資料。Label、字數規則、目前值與錯誤回饋都留在欄位附近。

能打字只是 Text Field 的入場券。Label 要持續可見,必填與格式規則得說清楚;驗證失敗後,使用者剛才輸入的內容也不能憑空消失。

當內容已經長到需要換行、回頭閱讀,就別把 Text Field 往下拉高假裝沒事。那不是延長版 Text Field,是 Textarea 該接手了。

Password Field 遮住秘密,也要讓使用者安全校對

Password Field|密碼輸入框 用來處理不應直接顯示的秘密值。預設遮蔽內容很合理,但不能因此要求使用者閉著眼睛相信自己完全沒打錯。

Vibe UI Atlas 的 Password Field 實際 Demo:遮蔽密碼與顯示或隱藏控制

圖 4:Password Field 預設遮蔽內容;顯示或隱藏控制讓使用者校對輸入,切換後原值仍要保留。

顯示/隱藏控制要有清楚名稱,切換時不能清空內容,也不能把鍵盤焦點弄丟。畫面若提示密碼目前正在顯示,使用者才知道旁邊有人經過時該先遮回去。

姓名和 Email 雖然也是個人資料,卻需要直接校對。別看到「私人」兩個字,就順手把所有欄位變成一排圓點,最後連本人都不知道自己填了什麼。

Search Field 要讓清單真的變少,放大鏡不能只當裝飾

Search Field|搜尋欄位 拿輸入文字去查找既有資料,不會把它當成表單值保存。它得交代何時查詢、搜尋中顯示什麼、找到幾筆,以及清除後回到哪裡。

UI 元件百科的 Search Field 實際操作畫面

圖 5:輸入「設計」後,畫面回報找到 1 位成員,只留下符合項目,並提供清除控制。

剛才輸入「設計」後,清單、結果數量與清除控制一起改變,這才叫搜尋。若框裡多了兩個字,底下三筆資料繼續老神在在,那只是 Text Field 戴了一副放大鏡。

輸入即搜尋時,結果區也不能每打一個字就大幅跳動。Vibe Coding 的需求若只寫「上面放一個搜尋框」,AI 最容易交出外觀;我還會補上觸發時機、搜尋中、無結果、結果數量與清除行為,才算把搜尋流程說完。

Textarea 留給完整段落,送出失敗也不能吃掉內容

Textarea|多行輸入框 適合備註、說明與原因。它需要足夠空間讓使用者回頭閱讀,也要處理換行、字數限制與送出失敗後的內容保留。

Vibe UI Atlas 的 Textarea 實際 Demo:可輸入較長備註的多行欄位

圖 6:Textarea 處理段落內容。可閱讀的輸入空間、字數提示與錯誤後保留內容,都是這個元件的工作。

字數接近上限時可以先提醒,超過後則要明確說出限制。若送出失敗,不能順便把使用者剛打完的兩百字一起消滅,否則下一次填寫大概會比錯誤訊息更有情緒。

反過來,只收一個短名稱或代碼時也不用 Textarea。畫面多出一大片空間,資料不會因此變得比較重要。

四個元件都能在 文字輸入元件完整比較頁 放在一起核對。先看資料用途,再到各自頁面操作狀態,會比看著四個靜態框猜名稱有效。

輸入第一個字後 Placeholder 就下班了,Label 不能跟著走

輸入框常被做得只剩 Placeholder,畫面看起來很乾淨。代價也很直接:使用者打下第一個字,欄位名稱就消失了。

Placeholder 比較像暫時貼在門上的便利貼,Label 才是門牌。便利貼一被輸入內容蓋掉,使用者回頭只剩一串資料,還得重新猜這是哪個房間。

輸入欄位周邊訊息的角色

圖 7:Label、輔助說明、目前值與錯誤訊息各有責任,不能全部塞進 Placeholder。

欄位周邊資訊 負責的工作
Label 持續說明這是「工作區帳號」還是「邀請備註」。
Helper Text 先交代規則,例如「至少 8 個字元」或「最多 200 字」。
目前值 保留使用者輸入,不能因驗證失敗而清空。
Error Message 說出哪裡有問題和怎麼修,不能只留一圈紅框。
Clear 清除 Search Field 的條件,並讓結果回到可理解的狀態。

這圈文字看起來不像元件主角,卻直接決定欄位出錯後能不能修。只把輸入框畫漂亮,等於替表單準備了一張很好看的沉默臉。

四個問題,決定文字該進哪一種輸入元件

  1. 要從既有資料中找項目嗎?使用 Search Field。
  2. 內容需要遮蔽嗎?使用 Password Field。
  3. 使用者要寫一段完整說明嗎?使用 Textarea。
  4. 其餘短文字、代碼或格式化資料,使用 Text Field。

這個順序是我會採用的判斷方式。先排除搜尋、秘密與長內容,剩下的短資料才交給 Text Field,不會一開始就把所有需求塞進預設輸入框。

改寫 Prompt:四個欄位要各自交代資料與反應

我不再要求 AI「做四個漂亮輸入框」。下面這份 Prompt 直接寫清楚資料規則、操作結果和 360px 的驗收方式:

為 LumenDesk 的新增成員表單設計四種輸入元件:
1. 工作區帳號使用 Text Field,保留可見 Label,必填與格式錯誤要顯示在欄位附近。
2. 初始密碼使用 Password Field,預設遮蔽,提供有文字說明的顯示/隱藏按鈕;切換時不可清空內容。
3. 成員搜尋使用 Search Field;輸入「設計」後顯示符合人數與清除控制,並提供搜尋中與無結果狀態。
4. 邀請備註使用 Textarea,最多 200 字,顯示目前字數與超過上限的錯誤訊息。
所有欄位在 360px 寬度下都要看得見 Label、訊息與操作控制。

這段規格交出去後,我還會故意做四件不太配合的事:填錯帳號、切換密碼顯示、搜尋不存在的成員,再讓備註超過 200 字。

帳號欄要保留錯誤值並告訴我怎麼修;密碼切換不能清空;搜尋要進入無結果狀態並保留清除入口;Textarea 則要顯示目前字數與上限。若最後只得到四圈紅色邊框,這份表單仍然在演同一齣戲。

四個欄位不必長得花俏,但不能繼續互相代打

修改後的 Demo 裡,帳號欄負責保存短資料與格式錯誤;密碼預設遮蔽,切換顯示後原值仍在;搜尋「設計」真的會縮小成員清單;備註則保留多行內容與字數狀態。

四個元件可以使用同一套視覺 Token,這沒有問題。真正被拆開的是資料責任與互動行為。

我繼續往下填邀請表單,AI 又很整齊地替 Email、站內通知、通知頻率和「邀請後立即啟用」放上同一種開關。

AI 第一版把通知管道、通知頻率與立即啟用全部做成 Switch

圖 8:Email、站內通知、三種通知頻率和立即啟用全都能同時打開;畫面還另外放了一顆「儲存設定」。

熟悉的味道回來了。

現在要處理的問題不再是「可以輸入什麼」,而是「可以選幾個」以及「選完是否立即生效」。明天接著拆 Checkbox、Radio 和 Switch。

參考資料與查閱日期

資料查閱:2026-07-31。


上一篇
Day 4|按鈕不只是藍色方塊:Button、Link 與操作元件
下一篇
Day 6|Checkbox、Radio、Switch:三個看起來像,意思完全不同
系列文
別再只叫 AI 做漂亮一點:30 天 Vibe Coding UI 元件驗收實驗9
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言